﻿# -*- coding: utf-8 -*-
from ingenium.models import *
from mensagens.models import *
from publicacoes.models import *
from publicidade.models import Publicidade
from django.contrib import admin
from django import template
from django.conf.urls.defaults import *
from django.shortcuts import render_to_response
from django.template import RequestContext

def publicar(ModelAdmin, request, queryset):
    queryset.update(publicar = True)

def despublicar(ModelAdmin, request, queryset):
    queryset.update(publicar = False)

def Vizualizar_Curriculo(self, request, usuario_id):
    user = usuario.objects.get(id=usuario_id)    
    return render_to_response('ingenium/curriculo.html', locals(),context_instance=RequestContext(request))

#class Media:
#		js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
		
class selecaoAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
            ('Informacoes Principais', {'fields': ['recrutamento','quant','tipo']}),
            ('Informacoes de Data', {'fields': ['data']}),
            ('Informacoes Adicionais', {'fields': ['observacao']}),
    ]
    list_display = ('recrutamento','tipo','quant','data')
    list_filter = ['data','tipo','quant']
    search_fields = ['recrutamento']
    date_hierarchy = 'data'
    radio_fields = {'tipo':admin.VERTICAL}
    save_on_top= True

class AvaliacaoInline(admin.StackedInline):
    model = Avaliacao	
    extra = 0
	
class usuarioAdmin(admin.ModelAdmin):
#    class Media:
#        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Dados Pessoais', {'fields': ['nome','nascimento','nacionalidade',('cpf','rg'),'sexo','est_Civil',('cidade','estado','bairro','rua','cep','complemento'),('telefone','telefone2'),'site','foto' ]}),
        ('Interesses Profissionais', {'fields': ['areaes','pret_salario','cargointeresse','tipoperfil']}),
        ('Formação Acadêmica', {'fields': [('instituicao','curso','ano_conclusao','nivel'),('instituicao1','curso1','ano_conclusao1','nivel1'),('instituicao2','curso2','ano_conclusao2','nivel2'),'niveli','nivele','nivelidioma','niveloutro']}),
        ('Experiências Profissionais', {'fields': ['experiencia',('cargo','inicio','nome_emp','termino','salario'),('cargo1','inicio1','nome_emp1','termino1','salario1'),('cargo2','inicio2','nome_emp2','termino2','salario2')]}),
        ('Informações Adicionais', {'fields': ['disponibilidade','hora_extra','veiculo','tipo_veiculo','portadordef','tipo_def','cursos','apres',('empregado','notebook','gravador','cameradigital')]}),
        ('Redes Sociais', {'fields': [('msn','facebook','twitter','orkut','googleplus','outrarede')]}),
        ('Pesquisa', {'fields': ['conhecimento','conhecimento2','pesquisa1','conhecimento3']}),
        ('Cadastro', {'fields': [('email','senha')]}),
    ]

    list_display = ('nome','sexo','idade','nivel','telefone','dataCadastro','foto_usuario')
    search_fields = ['nome']
    list_filter = ['sexo','veiculo','disponibilidade','nivel','areaes']
    #filter_horizontal = ['areaes']
    inlines = [AvaliacaoInline]
    actions = [Vizualizar_Curriculo]
    radio_fields = {'est_Civil':admin.VERTICAL,'sexo':admin.VERTICAL,'tipoperfil':admin.HORIZONTAL,'niveli':admin.HORIZONTAL,'nivele':admin.HORIZONTAL,'niveloutro':admin.HORIZONTAL,'experiencia':admin.VERTICAL,'disponibilidade':admin.VERTICAL,
                    'veiculo':admin.VERTICAL,'portadordef':admin.VERTICAL,'tipo_def':admin.HORIZONTAL,'empregado':admin.VERTICAL,'notebook':admin.VERTICAL,'gravador':admin.VERTICAL,'cameradigital':admin.VERTICAL,'conhecimento':admin.VERTICAL,'pesquisa1':admin.VERTICAL}

    save_on_top= True
    def foto_usuario(self, obj):
        if obj.foto:
            return u'<img src=/media/%s>' % (obj.foto)
        else:
            return u'<img src=/media/img/avatar.png>'

    foto_usuario.short_description = 'Fotografia'
    foto_usuario.allow_tags = True

class empresaAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Dados Pessoais', {'fields': [('nome','email'),('cpf','telefone'),('cargo','atuacao'),'sexo']}),
        ('Dados da Empresa', {'fields': [('nome_fantasia','razao'),('telefone1','cnpj'),'origem','foto',('site','email1'),'nacionalidade',('cidade','estado','bairro','endereco','cep','complemento'),('ramo','tipodeempresa'),'descricao', 'quantFuncionario']}),
        ('Cadastro', {'fields': [('username','senha')]}),
    ]
    list_display = ('nome','nome_fantasia','razao','endereco','origem','telefone')
    search_fields = ['nome_fantasia']
    list_filter = ['nome_fantasia']
    radio_fields = {'sexo':admin.VERTICAL,'origem':admin.HORIZONTAL}
    save_on_top= True

class recrutamentoAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
            ('Informações Principais', {'fields': ['vaga','tipo']}),
            ('Informações de Data',{'fields': ['data']}),
            ('Informacoes Adicionais', {'fields': ['observacao']}),
    ]
    list_filter = ['vaga','tipo','data']
    list_display = ('vaga','tipo','data')
    radio_fields = {'tipo':admin.HORIZONTAL}
    search_fields = ['vaga']

class procuraAdmin(admin.ModelAdmin):
    fieldsets = [
            ('Informacoes Principais', {'fields': ['nome','vaga']}),
            ('Informacoes de Data', {'fields': ['data']}),
    ]
    list_display = ('nome','vaga','data')
    list_filter = ['vaga','data']
    search_fields = ['nome']
    date_hierarchy = 'data'

class vagaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informacoes Principais', {'fields': ['area','descricao','observacao']}),
    ]
    save_on_top= True
    list_filter = ['area']
    search_fields = ['area']
            
class areavagaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informacoes Principais',{'fields':['areaatuacao','qtdvagas']}),
    ]
    search_fields = ['areaatuacao']
    list_filter = ['areaatuacao']
    save_on_top= True
		
class CursoAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais', {'fields':['nome','descricao','destinado']}),
        ('Informação de Data', {'fields':['pub_date']}),
        ('Estatísticas', {'fields':[('vagas','inscricoes','presenca')]}),
        ('Informações de Mídias', {'fields':['midias','relatorios']})
    ]
    filter_horizontal = ['midias']
    search_fields = ['nome']
    list_filter = ['nome','pub_date']
    save_on_top= True

class NoticiasAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':('publicar','autor',('titulo','subtitulo'),('chamada','fonte'),'conteudo','tags')}),
        ('Informação de Data', {'fields':['publicacao']}),
        ('Informações de Mídias', {'fields':['imagem_destaque','imagens','videos']})
    ]
    list_display = ('titulo','subtitulo','publicacao','publicar')
    list_filter = ['publicar','publicacao']
    filter_horizontal = ['imagens','videos']
    search_fields = ['titulo']
    actions = [publicar, despublicar]
    save_on_top= True

class DestaquesAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':('publicar',('titulo','subtitulo'),'conteudo','autor','tags')}),
        ('Informação de Data', {'fields':['publicacao']}),
        ('Informações de Mídias', {'fields':['imagem_destaque','imagens','videos']}),
    ]
    list_display = ('titulo','subtitulo','publicacao','publicar')
    list_filter = ['publicar','publicacao']
    search_fields = ['titulo']
    filter_horizontal = ['imagens','videos']
    actions = [publicar, despublicar]
 
class ArtigoAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':('publicar',('titulo','subtitulo'),'autor','autor_desc','resumo','conteudo','tags'  )}),
        ('Informação de Data', {'fields':['publicacao']}),
        ('Informações de Mídias', {'fields':['imagem_destaque']})
    ]
    list_display = ('titulo','autor','publicacao','publicar')
    list_filter = ['publicar','titulo','autor','publicacao']
    search_fields = ['titulo']
    actions = [publicar, despublicar]
    save_on_top= True
		
class ParceirosAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais',{'fields':['publicar','nome','imagem','site']}),
        ('Informações de Data',{'fields':['publicacao']})
    ]
    list_display = ('nome','site','publicacao','publicar')
    list_filter = ['publicar','nome','publicacao']
    search_fields = ['nome']
    actions = [publicar, despublicar]
    save_on_top= True

class VagaempresaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Empresa', {'fields': ['empresa','data']}),
        ('Informacoes para Vaga', {'fields': [('vaga', 'recrutamento'),'perfilvaga','descricao','tipovaga','atividade','beneficios','regime',('horario','salario'),'nivelhierarquico', 'localdetrabalho']}),
        ('Requisitos do Profissional', {'fields': ['experiencias','nivel','adicionais']}),
        ('Requisitos da Seleção', {'fields': ['quantidade','etapasselecao',]}),
    ]
    list_display = ('empresa','vaga','recrutamento','data','quantidade','salario','horario')
    list_filter = ['empresa','salario','horario','data']
    search_fields = ['empresa']
    radio_fields = {'perfilvaga':admin.VERTICAL,'tipovaga':admin.HORIZONTAL,'regime':admin.VERTICAL}
    save_on_top= True

class CandidatoselecaoAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Associar Candidato à Seleção', {'fields': ['procura','selecao']}),
        ('Informações Candidato', {'fields': ['tempolig','sms','data','sit']}),
        ('Informações Adicionais', {'fields': ['observacao']})
    ]
    list_display = ('procura','selecao','data','sit')
    list_filter = ['selecao','data','sit']
    radio_fields = {'sit':admin.VERTICAL}
    save_on_top= True

class ChoiceInline(admin.TabularInline):
    model = Alternativa
    extra = 2

class EnqueteAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        (None,               {'fields': ['pergunta','data_publicacao']}),
    ]
    list_display = ('pergunta','data_publicacao')
    inlines = [ChoiceInline]
    list_filter = ['data_publicacao']
    search_fields = ['pergunta']
    date_hierarchy = 'data_publicacao'
    save_on_top = True

class TiposdemidiaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['descricao']}),
        ('Informações de Adicionais', {'fields':['observacao']})
    ]
    list_display = ['descricao']
    search_fields = ['descricao']
    list_filter = ['descricao']
    save_on_top = True

class DivulgacaoAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields': ['recrutamento','tipo_midia','descricao','valor','data','quantidade']})
    ]
    list_filter = ['valor']

class MensagensEmpresaAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais', {'fields': ['assunto','conteudo']}),
        ('Informação de Data', {'fields':['data']}),
    ]
    list_filter = ['assunto']
    search_fields = ['assunto']
    list_display = ['assunto']


class MensagensUsuarioAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais', {'fields': ['assunto','conteudo']}),
        ('Informação de Data', {'fields':['data']}),
    ]
    list_filter = ['assunto']
    search_fields = ['assunto']
    list_display = ['assunto']

class GaleriaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['titulo','autor','imagem','comentario']}),
        ('Informação de Data', {'fields':['dt_publicacao']})
    ]
    search_fields = ['titulo']
    list_filter = ['autor','dt_publicacao']
    list_display = ['titulo','autor','dt_publicacao']

class GaleriaVideoAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['titulo','autor','url',]}),
        ('Informação de Data', {'fields':['dt_publicacao']})
    ]
    search_fields = ['titulo']
    list_filter = ['autor','dt_publicacao']
    list_display = ['titulo','autor','dt_publicacao']

class EventosAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais', {'fields':['titulo','local','conteudo','tags','destinado']}),
        ('Informação de Data', {'fields':['diadoevento','publica']}),
        ('Informações de Adicionais', {'fields':['eventofoto']})
    ]
    search_fields = ['titulo']
    list_display = ['titulo','local','diadoevento']
    list_filter = ['local','diadoevento']

class TipodeRecrutamentoAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['descricao']}),
        ('Informações de Adicionais', {'fields':['observacao']})
    ]
    search_fields = ['descricao']
    list_filter = ['descricao']

class TipodeSelecaoAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['descricao']}),
        ('Informações de Adicionais', {'fields':['observacao']})
    ]
    search_fields = ['descricao']
    list_filter = ['descricao']

class PublicidadeAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais', {'fields':['nome','imagem','data_entrada']}),
        ('Informações de Adicionais', {'fields':['url']})
    ]
    search_fields = ['nome']
    list_filter = ['nome','data_entrada']
    list_display = ['nome','data_entrada']


class RequisicaoAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais', {'fields':['empresa','perfilvaga','vaga','descricao','tipovaga','atividade','experiencias','salario','nivel','beneficios',('horario','nivelhierarquico'),('quantidade','localdetrabalho','regime')]}),
        ('Informação de Data', {'fields':['dataprocura']}),
        ('Informações de Adicionais', {'fields':['situacao','etapasselecao','observacao','adicionais']})
    ]
    radio_fields = {'perfilvaga':admin.HORIZONTAL,'tipovaga':admin.HORIZONTAL,'situacao':admin.HORIZONTAL}
    search_fields = ['empresa']
    list_display = ['empresa','vaga','perfilvaga','dataprocura']
    list_filter = ['vaga','dataprocura']

admin.site.register(mensagemUsuario,MensagensUsuarioAdmin)
admin.site.register(mensagemEmpresa, MensagensEmpresaAdmin)
admin.site.register(requisicao,RequisicaoAdmin)
admin.site.register(areavaga, areavagaAdmin)      
admin.site.register(Noticias, NoticiasAdmin)
admin.site.register(selecao, selecaoAdmin)
admin.site.register(usuario,usuarioAdmin)
admin.site.register(recrutamento,recrutamentoAdmin)
admin.site.register(procura, procuraAdmin)
admin.site.register(empresa, empresaAdmin)
admin.site.register(vaga, vagaAdmin)
admin.site.register(curso, CursoAdmin)
admin.site.register(Parceiros, ParceirosAdmin)
admin.site.register(Destaques, DestaquesAdmin)
admin.site.register(vagaempresa, VagaempresaAdmin)
admin.site.register(Artigo, ArtigoAdmin)
admin.site.register(tipo_selecao,TipodeSelecaoAdmin)
admin.site.register(tipo_midia,TiposdemidiaAdmin)
admin.site.register(tipo_recrutamento,TipodeRecrutamentoAdmin)
admin.site.register(divulgacao,DivulgacaoAdmin)
admin.site.register(Galeria,GaleriaAdmin)
admin.site.register(Eventos,EventosAdmin)
admin.site.register(GaleriaVideos,GaleriaVideoAdmin)
admin.site.register(candidatoselecao,CandidatoselecaoAdmin)
admin.site.register(Enquete, EnqueteAdmin)
admin.site.register(Publicidade,PublicidadeAdmin)